package cn.touna.jss.modules.third.bee.entity;

import cn.touna.risk.api.contraints.BankCardNumber;
import cn.touna.risk.api.contraints.DateCheck;
import cn.touna.risk.api.contraints.InSet;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Digits;
import java.util.List;

/**
 * Created by Steve.Tao on 2017/9/2.
 */
public class BeeRequestEntity extends AccountBaseInfo {

    private String computer_no;

    private List<Personal_home_contacts> personal_home_contacts;

    private List<Educations> educations;

    private List<Socials> socials;

    private List<Bank_cards> bank_cards;

    private List<Corporations> corporations;

    private List<Village> village;

    private List<Vehicle> vehicle;

    private List<Traffic> traffic;

    private List<Linkman> linkman;

    private List<Life_insurance> life_insurance;

    public String getComputer_no() {
        return computer_no;
    }

    public void setComputer_no(String computer_no) {
        this.computer_no = computer_no;
    }

    public List<Personal_home_contacts> getPersonal_home_contacts() {
        return personal_home_contacts;
    }

    public void setPersonal_home_contacts(List<Personal_home_contacts> personal_home_contacts) {
        this.personal_home_contacts = personal_home_contacts;
    }

    public List<Educations> getEducations() {
        return educations;
    }

    public void setEducations(List<Educations> educations) {
        this.educations = educations;
    }

    public List<Socials> getSocials() {
        return socials;
    }

    public void setSocials(List<Socials> socials) {
        this.socials = socials;
    }

    public List<Bank_cards> getBank_cards() {
        return bank_cards;
    }

    public void setBank_cards(List<Bank_cards> bank_cards) {
        this.bank_cards = bank_cards;
    }

    public List<Corporations> getCorporations() {
        return corporations;
    }

    public void setCorporations(List<Corporations> corporations) {
        this.corporations = corporations;
    }

    public List<Village> getVillage() {
        return village;
    }

    public void setVillage(List<Village> village) {
        this.village = village;
    }

    public List<Vehicle> getVehicle() {
        return vehicle;
    }

    public void setVehicle(List<Vehicle> vehicle) {
        this.vehicle = vehicle;
    }

    public List<Traffic> getTraffic() {
        return traffic;
    }

    public void setTraffic(List<Traffic> traffic) {
        this.traffic = traffic;
    }

    public List<Linkman> getLinkman() {
        return linkman;
    }

    public void setLinkman(List<Linkman> linkman) {
        this.linkman = linkman;
    }

    public List<Life_insurance> getLife_insurance() {
        return life_insurance;
    }

    public void setLife_insurance(List<Life_insurance> life_insurance) {
        this.life_insurance = life_insurance;
    }

    public static class Vehicle {

//        @NotBlank(message = "车系不能为空")
        private String vehicle_series;
//        @NotBlank(message = "车辆行驶里程不能为空")
        @Digits(integer = 3, fraction = 2, message = "行驶里程必须为数字，在0.01~999.99万公里之间")
        private String vehicle_with_mileage;
//        @NotBlank(message = "上牌年月不能为空")
//        @DateCheck(format = "yyyy-MM", message = "上牌年月格式不正确")
        private String vehicle_licensing_date;
        private String vehicle_model;
        private String vehicle_brand;
        private String vehicle_territoriality;

        public String getVehicle_series() {
            return vehicle_series;
        }

        public void setVehicle_series(String vehicle_series) {
            this.vehicle_series = vehicle_series;
        }

        public String getVehicle_with_mileage() {
            return vehicle_with_mileage;
        }

        public void setVehicle_with_mileage(String vehicle_with_mileage) {
            this.vehicle_with_mileage = vehicle_with_mileage;
        }

        public String getVehicle_licensing_date() {
            return vehicle_licensing_date;
        }

        public void setVehicle_licensing_date(String vehicle_licensing_date) {
            this.vehicle_licensing_date = vehicle_licensing_date;
        }

        public String getVehicle_model() {
            return vehicle_model;
        }

        public void setVehicle_model(String vehicle_model) {
            this.vehicle_model = vehicle_model;
        }

        public String getVehicle_brand() {
            return vehicle_brand;
        }

        public void setVehicle_brand(String vehicle_brand) {
            this.vehicle_brand = vehicle_brand;
        }

        public String getVehicle_territoriality() {
            return vehicle_territoriality;
        }

        public void setVehicle_territoriality(String vehicle_territoriality) {
            this.vehicle_territoriality = vehicle_territoriality;
        }
    }

    public static class Socials {
        private String social_type;
        private String social_account;

        public String getSocial_type() {
            return social_type;
        }

        public void setSocial_type(String social_type) {
            this.social_type = social_type;
        }

        public String getSocial_account() {
            return social_account;
        }

        public void setSocial_account(String social_account) {
            this.social_account = social_account;
        }
    }

    public static class Life_insurance {

        @NotBlank(message = "保单号不能为空")
        private String policy_no;

        @NotBlank(message = "保单类型不能为空")
        @InSet(enumSet = {"PingAn", "SinoLife", "SinoSig", "CPIC", "UnionLife"}, message = "保单类型不在平安人寿，生命人寿，阳光保险,太平洋保险,合众人寿中")
        private String policy_type;

        public String getPolicy_no() {
            return policy_no;
        }

        public void setPolicy_no(String policy_no) {
            this.policy_no = policy_no;
        }

        public String getPolicy_type() {
            return policy_type;
        }

        public void setPolicy_type(String policy_type) {
            this.policy_type = policy_type;
        }
    }

    public static class Traffic {
        private String traffic_car_type;
        private String traffic_engine_number;
        private String traffic_car_numbe;
        private String traffic_frame_number;

        public String getTraffic_car_type() {
            return traffic_car_type;
        }

        public void setTraffic_car_type(String traffic_car_type) {
            this.traffic_car_type = traffic_car_type;
        }

        public String getTraffic_engine_number() {
            return traffic_engine_number;
        }

        public void setTraffic_engine_number(String traffic_engine_number) {
            this.traffic_engine_number = traffic_engine_number;
        }

        public String getTraffic_car_numbe() {
            return traffic_car_numbe;
        }

        public void setTraffic_car_numbe(String traffic_car_numbe) {
            this.traffic_car_numbe = traffic_car_numbe;
        }

        public String getTraffic_frame_number() {
            return traffic_frame_number;
        }

        public void setTraffic_frame_number(String traffic_frame_number) {
            this.traffic_frame_number = traffic_frame_number;
        }
    }

    public static class Corporations {
        private String corporation_telephone;

        @NotBlank(message = "公司名不能为空")
        private String corporation_name;

        private String corporation_city;
        private String corporation_address;
        private String corporation_code;

        @NotBlank(message = "职位信息不能为空")
        private String corporation_position;

        public String getCorporation_telephone() {
            return corporation_telephone;
        }

        public void setCorporation_telephone(String corporation_telephone) {
            this.corporation_telephone = corporation_telephone;
        }

        public String getCorporation_name() {
            return corporation_name;
        }

        public void setCorporation_name(String corporation_name) {
            this.corporation_name = corporation_name;
        }

        public String getCorporation_city() {
            return corporation_city;
        }

        public void setCorporation_city(String corporation_city) {
            this.corporation_city = corporation_city;
        }

        public String getCorporation_address() {
            return corporation_address;
        }

        public void setCorporation_address(String corporation_address) {
            this.corporation_address = corporation_address;
        }

        public String getCorporation_code() {
            return corporation_code;
        }

        public void setCorporation_code(String corporation_code) {
            this.corporation_code = corporation_code;
        }

        public String getCorporation_position() {
            return corporation_position;
        }

        public void setCorporation_position(String corporation_position) {
            this.corporation_position = corporation_position;
        }
    }

    public static class Village {
        private String village_no;

//        @NotBlank(message = "房产所在城市不能为空")
        private String village_city;
//        @NotBlank(message = "房产名称不能为空")
        private String village_name;

        public String getVillage_no() {
            return village_no;
        }

        public void setVillage_no(String village_no) {
            this.village_no = village_no;
        }

        public String getVillage_city() {
            return village_city;
        }

        public void setVillage_city(String village_city) {
            this.village_city = village_city;
        }

        public String getVillage_name() {
            return village_name;
        }

        public void setVillage_name(String village_name) {
            this.village_name = village_name;
        }
    }

    public static class Personal_home_contacts {
        private String personal_home_address;
        private String personal_home_contact_telephone;

        public String getPersonal_home_address() {
            return personal_home_address;
        }

        public void setPersonal_home_address(String personal_home_address) {
            this.personal_home_address = personal_home_address;
        }

        public String getPersonal_home_contact_telephone() {
            return personal_home_contact_telephone;
        }

        public void setPersonal_home_contact_telephone(String personal_home_contact_telephone) {
            this.personal_home_contact_telephone = personal_home_contact_telephone;
        }
    }

    public static class Linkman {
        //        @Mobile(message = "联系人电话格式不正确")
        private String mobile_phone;
        //        @NotBlank(message = "联系人名字格式不正确")
        private String name;

        private String relation;
        private String telephone;

        public String getMobile_phone() {
            return mobile_phone;
        }

        public void setMobile_phone(String mobile_phone) {
            this.mobile_phone = mobile_phone;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getRelation() {
            return relation;
        }

        public void setRelation(String relation) {
            this.relation = relation;
        }

        public String getTelephone() {
            return telephone;
        }

        public void setTelephone(String telephone) {
            this.telephone = telephone;
        }
    }

    public static class Educations {
        private String education_school_name;
        private String education_degree;
        private String education_diploma;
        private String education_major;
        private String education_certificate_number;
        private String education_year;

        public String getEducation_school_name() {
            return education_school_name;
        }

        public void setEducation_school_name(String education_school_name) {
            this.education_school_name = education_school_name;
        }

        public String getEducation_degree() {
            return education_degree;
        }

        public void setEducation_degree(String education_degree) {
            this.education_degree = education_degree;
        }

        public String getEducation_diploma() {
            return education_diploma;
        }

        public void setEducation_diploma(String education_diploma) {
            this.education_diploma = education_diploma;
        }

        public String getEducation_major() {
            return education_major;
        }

        public void setEducation_major(String education_major) {
            this.education_major = education_major;
        }

        public String getEducation_certificate_number() {
            return education_certificate_number;
        }

        public void setEducation_certificate_number(String education_certificate_number) {
            this.education_certificate_number = education_certificate_number;
        }

        public String getEducation_year() {
            return education_year;
        }

        public void setEducation_year(String education_year) {
            this.education_year = education_year;
        }
    }

    public static class Bank_cards {

        @BankCardNumber
        private String bank_card_num;

        public String getBank_card_num() {
            return bank_card_num;
        }

        public void setBank_card_num(String bank_card_num) {
            this.bank_card_num = bank_card_num;
        }
    }
}
